package com.jichangxiu.server.platform.service;

import com.jichangxiu.common.entity.bo.PageData;
import com.jichangxiu.common.entity.bo.Record;
import com.jichangxiu.framework.mybatis.BaseService;
import com.jichangxiu.server.platform.entity.po.PlatformDept;
import com.jichangxiu.server.platform.entity.vo.PlatformDeptAddVo;
import com.jichangxiu.server.platform.entity.vo.PlatformDeptEditVo;
import com.jichangxiu.server.platform.entity.vo.PlatformDeptQueryVo;

import javax.validation.constraints.NotBlank;
import java.util.List;

/**
 * PlatformDeptService:
 *
 * @author Jcx
 * @create 2023-03-08 21:12
 */
public interface PlatformDeptService extends BaseService<PlatformDept> {

    /**
     * 新增部门
     *
     * @param platformDeptAddVo 部门视图对象
     * @return 是否成功
     */
    public Boolean add(PlatformDeptAddVo platformDeptAddVo);

    /**
     * 多选级联删除部门
     *
     * @param deptIdList 部门ID列表
     * @return 是否成功
     */
    public Boolean del(List<String> deptIdList);

    /**
     * 修改部门信息
     *
     * @param platformDeptEditVo 部门视图对象
     * @return 是否成功
     */
    public Boolean edit(PlatformDeptEditVo platformDeptEditVo);

    /**
     * 根据ID获取树形部门详情
     *
     * @param deptId 部门ID
     * @return 树形部门详情
     */
    public Record info(@NotBlank(message = "部门ID不能为空") String deptId);

    /**
     * 分页查询树形部门列表
     *
     * @param platformDeptQueryVo 部门视图对象
     * @return 分页树形部门列表
     */
    public PageData<Record> pageList(PlatformDeptQueryVo platformDeptQueryVo);

}
